For communication between devices, for example in automotive applications, various protocols are used. One protocol frequently employed is the SENT protocol (single edge nibble transmission). This protocol may for example be used in applications where high resolution data is transmitted for example from a sensor device to an electronic control unit (ECU).
The SPC protocol (short PWM code; PWM meaning pulse width modulation) is an extension of the SENT protocol and aims at increasing performance of a communication link and reducing system costs at the same time. To some extent, SPC allows bidirectional communication and is an example of an edge based PWM protocol. For example, SPC may introduce a half-duplex synchronous communication. A receiver (e.g. master) generates for example a master trigger pulse on a communication line by pulling it low for a defined amount of time. The pulse width (corresponding to the defined amount of time) is measured by a transmitter (e.g. slave), for example a sensor, and a transmission, e.g. a SENT transmission, is initiated only if the pulse width is within a defined limit. The SPC protocol allows choosing between various protocol modes. For example, a synchronous mode, a synchronous mode with range selection or a synchronous transmission with ID selection, where up to four sensors may be connected in parallel to an ECU, may be used. In the latter case, the pulse width of the above-mentioned trigger pulse may define which sensor or other entity will start a transmission. For example, a length of the trigger pulse may indicate an ID of a sensor or other slave device selected for transmission. The sensor or other entity may start the transmission with its own synchronization, which may overlap data pulses.
Conventionally, in the SPC protocol following a master request no feedback has been given. For example, when a master (for example ECU) triggers a slave (for example sensor) with an ID (for example via pulse width), the master, based on a reply alone, could not be sure if indeed the correct slave has responded. Similar considerations apply in a point-to-point transmission with using an area switching or other switching between sectors, zones, ranges, or regions based on a master request. In some implementations, bits in a data frame have been used for giving feedback. This uses bandwidth which otherwise could be used for data transmission.
In other circumstances, a master may not be sure that data transmitted are up to date or if always the same information is transmitted (which apart from a transmission without request is a possible additional error mode of this general problem, which is also known as “Babbling Idiot”).